/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package Service;

import DB.FichaSiquiatra;
import java.util.List;
import javax.jws.WebMethod;
import javax.jws.WebParam;
import javax.jws.WebService;
import org.hibernate.Session;
import org.hibernate.Transaction;
import org.hibernate.criterion.Restrictions;
import org.hibernate.Criteria;
import DB.HibernateUtil;

/**
 *
 * @author Jacqueline
 */
@WebService()
public class FichaSiquiatraWS {
    @WebMethod(operationName = "agregarFichaSiquiatra")
    public Long agregarFichaSiquiatra(@WebParam(name = "paciente") String paciente,
            @WebParam(name = "profesional") String profesional,
            @WebParam(name = "fechaIngreso") String fechaIngreso,
            @WebParam(name = "diagnostico") String diagnostico,
            @WebParam(name = "activo") boolean activo) {

        DB.FichaSiquiatra ficha = new DB.FichaSiquiatra();
        ficha.setPaciente(paciente);
        ficha.setProfesional(profesional);
        ficha.setDiagnostico(diagnostico);
        ficha.setFechaIngreso(fechaIngreso);
        ficha.setActivo(activo);
        ControladorDeObjetos.saveObject(ficha);
        return ficha.getId();
    }
    /**
     * Web service operation
     */
    @WebMethod(operationName = "listarFichasSiquiatra")
    public List<FichaSiquiatra> listarFichasSiquiatra() {
        return ControladorDeObjetos.getAllObjectByClassType(FichaSiquiatra.class);
    }

    /**
     * Web service operation
     */
    @WebMethod(operationName = "cargarFichaSiquiatra")
    public Object cargarFichaSiquiatra(@WebParam(name = "Id") Long Id){
        return ControladorDeObjetos.loadObjectByLongId(Id, FichaSiquiatra.class);
    }

    /**
     * Web service operation
     */
    @WebMethod(operationName = "modificarFichaSiquiatra")
    public boolean modificarFichaSiquiatra(@WebParam(name = "Id") Long Id,
            @WebParam(name = "paciente") String paciente,
            @WebParam(name = "profesional") String profesional,
            @WebParam(name = "fechaIngreso") String fechaIngreso,
            @WebParam(name = "diagnostico") String diagnostico,
            @WebParam(name = "activo") boolean activo) {

        FichaSiquiatra ficha = (FichaSiquiatra) ControladorDeObjetos.loadObjectByLongId(Id,FichaSiquiatra.class);
        ficha.setPaciente(paciente);
        ficha.setProfesional(profesional);
        ficha.setDiagnostico(diagnostico);
        ficha.setFechaIngreso(fechaIngreso);
        ficha.setActivo(activo);
        return ControladorDeObjetos.updateObject(ficha);
    }

    @WebMethod(operationName = "modificarFichaSiqui")
    public boolean modificarFichaSiqui(@WebParam(name = "FichaSiquiatra")FichaSiquiatra fichaClinica) {
        return ControladorDeObjetos.updateObject(fichaClinica);
    }

    @WebMethod(operationName = "filtrarFichasSiquiatra")
    public List<FichaSiquiatra> filtrarFichasSiquiatra(@WebParam(name = "buscar") String buscar) {
        Session s = HibernateUtil.getSessionFactory().getCurrentSession();
        Transaction trans = s.beginTransaction();
        Criteria c = s.createCriteria(FichaSiquiatra.class).add(Restrictions.or(Restrictions.or(Restrictions.ilike("paciente", "%" + buscar + "%"),
                Restrictions.ilike("fechaIngreso", "%" + buscar + "%")),
                (Restrictions.ilike("diagnostico", "%" + buscar + "%"))));
        List l = c.list();
        s.close();
        return l;
    }
}
